local ClientOHOH = _G.ClientOHOH;

local M = ClientOHOH.class.new(script, ClientOHOH.files.OHOHOLYBUIBase());
local BtnHelper = ClientOHOH.load.BtnHelper();

local CallBackManager = ClientOHOH.load.CallBackManager();

function InitInsts(ui)
	ui.insts = {};

	ui.insts.close ="ctrl.btn.colse"
    ui.insts.cellPerfab ="ctrl.cell"
    ui.insts.list ="ctrl.listFrame"

    
    ui.insts.BgColor={
        [1]="ctrl.color.Common",
        [2] ="ctrl.color.Epic",
        [3] ="ctrl.color.Legendary",
        [4]="ctrl.color.Omega",
        [5]="ctrl.color.Mythic",
        [6]="ctrl.color.Rare",
    }

--     ui.insts.MergeInfo={
--         icon ="ctrl.fuse.icon",--武器图片
--         titleBg ="ctrl.fuse.color_title",--称号背景色控制
--         title ="ctrl.fuse.title",--称号
--         name="ctrl.fuse.name",--名字
--         value="ctrl.fuse.value",--攻击力
--         bg="ctrl.fuse.bg",-- 称号背景色
--         list={
--             [1]="ctrl.fuse.Item3.1",
--             [2]="ctrl.fuse.Item3.2",
--             [3]="ctrl.fuse.Item3.3",
--         },
--         merg={
--             icon="ctrl.fuse.merg.icon",-- 消耗图标
--             btn="ctrl.fuse.merg.btn",--按钮
--             price="ctrl.fuse.merg.price",--价格
--         }
--     }
end



function M.new(...)
	return M(...);
end;

function M.getBgColorByTitleId(self,id)
    return self.insts.BgColor[id]
end

function M.ctor(self)
	InitInsts(self)


    self.MergeEvent=_G.CommonOHOH.load.Connect().new()



	M.super.ctor(self, ClientOHOH:GetPath_Loop("ReplicatedStorage.Resource.UI.WeaponMakeGui"));
    --列表对象
    self.ListUi=require(script.List).new(self.insts.list,self.insts.cellPerfab,self)
    --右侧显示信息对象
    self.InfoUi=require(script.Info).new(self) 

    self.insts.cellPerfab.Visible=false

    --关闭
    CallBackManager:AddRbxConnect(self,self.insts.close.Activated, function()
		self:Hide()
	end);


-----------------------------------操作接口----------------------------------------------


    --合成状态--->正常状态（合成成功）
    local mergbtn=self.InfoUi:GetInMergeButton()
    CallBackManager:AddRbxConnect(self,mergbtn.Activated, function()
        local data=self.InfoUi:GetMergeData()
        if data then
            local list= self.MergeEvent:Action(data)
            print("----正在走合成逻辑-----------")
            for k,v in pairs(list) do
                if v then
                    self.ListUi:FilterByCell()
                    self.InfoUi:Clear()

                end
            end
        end
    end);



end;

function M.OnShow(self)
    self.ListUi:FilterByCell()
    self.InfoUi:Clear()
end

--单元被点击
function M.CellClick(self,cell)

    if self.InfoUi:MergeIsHad(cell) then --已经存在它
        self.InfoUi:RemoveMergeCell(cell) --移除合成表
        if  self.InfoUi:GetMergeCount()==0 then
            self.ListUi:FilterByCell()
            self.InfoUi:Clear()
        end
    else
        if self.InfoUi:AddMergeCell(cell) then--添加合成表
             self.ListUi:FilterByCell(cell)
        end
    end
   
end

--更新武器数据
function M.UpdateData(self,data)
    for k,v in pairs(data) do
        if  not self.ListUi:IshadData(v) then
            local ui=self.insts.cellPerfab:Clone()
            ui.Parent=self.insts.cellPerfab.Parent
            ui.Visible=true
            self.ListUi:AddCell(ui,v)
        end
    end
end

function M.dtor(self)
	M.super.dtor(self);
end;



return M